import Command from "./command"

export class BatchAddMattertagCommand extends Command {
  constructor(e: any) {
    super()
    this.payload = e
    this.id = "BATCH_ADD_MATTERTAG"
  }
}

export class GetMattertagDataCommand extends Command {
  constructor() {
    super(...arguments)
    this.id = "MATTERTAG_GET"
  }
}
export class RegisterIconCommand extends Command {
  constructor(e: any) {
    super()
    this.payload = e
    this.id = "REGISTER_MATTERTAG_ICON"
  }
}
export class EditIconCommand extends Command {
  constructor(e: any) {
    super()
    this.payload = e
    this.id = "EDIT_MATTERTAG_ICON"
  }
}
export class ResetIconCommand extends Command {
  constructor(e: any) {
    super()
    this.payload = e
    this.id = "RESET_MATTERTAG_ICON"
  }
}
export class EditBillboardCommand extends Command {
  constructor(tagId: any, properties: any) {
    super()
    this.payload = { tagId, properties }
  }
}
export class EditColorCommand extends Command {
  constructor(tagId: any, color: any) {
    super()
    this.payload = { tagId, color }
  }
}
export class MattertagNavigateCommand extends Command {
  constructor(sid: string, transition: any) {
    super()
    this.id = "NAVIGATE_TO_MATTERTAG"
    this.payload = { sid, transition }
  }
}
export class BatchRemoveMattertagCommand extends Command {
  constructor(removeCommands: any) {
    super()
    this.id = "BATCH_REMOVE_MATTERTAG"
    this.payload = { removeCommands }
  }
}
export class MattertagOpenCommand extends Command {
  constructor(tag: any) {
    super()
    this.id = "MATTERTAG_OPEN"
    this.payload = { tag }
  }
}
export class MattertagCloseCommand extends Command {
  constructor(tag: any) {
    super()
    this.id = "MATTERTAG_CLOSE"
    this.payload = { tag }
  }
}
export class GetDiscPositionsCommand extends Command {
  constructor(tags: any) {
    super()
    this.id = "MATTERTAG_DISC_POSITIONS"
    this.payload = { tags }
  }
}
export class AddMattertagCommand extends Command {
  constructor(e: any, t: any, i: any) {
    super()
    this.id = "ADD_MATTERTAG"
    this.payload = Object.assign(Object.assign(Object.assign({}, e), t), i)
  }
}
export class RemoveMattertagCommand extends Command {
  constructor(sid: string) {
    super()
    this.id = "DELETE_MATTERTAG"
    this.payload = { sid }
  }
}
export class EditMattertagCommand extends Command {
  constructor(sid: string, t: any, i: any, n: any) {
    super()
    this.payload = {
      sid,
      options: Object.assign(Object.assign(Object.assign({}, t), i), n)
    }
  }
}
export class MattertagNavigateToLinkCommand extends Command {
  constructor(chunk: any) {
    super()
    this.id = "MATTERTAG_NAV_LINK"
    this.payload = { chunk }
  }
}
export class NavigateToMattertagCommand extends Command {
  constructor(sid: string, transition: any, navigateToDisabled = !1) {
    super()
    this.id = "MATTERTAG_NAVIGATE"
    this.payload = { sid, transition, navigateToDisabled }
  }
}
export class SearchModeToggleCommand extends Command {
  constructor(opened: boolean) {
    super()
    this.payload = { opened }
  }
}
export class SendQueryCommand extends Command {
  constructor(query: any) {
    super()
    this.payload = { query }
  }
}
